草庐IT

Android AsyncTask 内存泄漏

全部标签

windows - 如何增加 GroovyConsole 中的可用内存大小?

我在64位Windows7上的GroovyConsole2.4.5中运行脚本,它们由于内存不足错误而崩溃。Runtime.getRuntime().maxMemory()显示247MB,我的电脑有32GB内存。增加GroovyConsole和底层JVM可用内存的方法是什么?我尝试编辑startGroovy.bat文件:setGROOVY_OPTS="-Xmx2g-Xms1g"和其他值,但没有任何效果。 最佳答案 我不在Windows上,所以无法测试,但你应该可以使用JAVA_OPTS而不是GROOVY_OPTS,即:setJAVA_

c# - 在不消耗内存的情况下运行连续的 Windows 后台任务

我编写了一个简短的C#脚本以在我的计算机启动时执行。它的功能是监控iTunes并显示一条有趣的消息作为我的Skype状态,说明我正在听的艺术家。它创建一个iTunesApp对象并添加一个监听器来检测轨道何时发生变化。问题是我需要使用while(true)循环来让我的应用程序在后台打开,否则它只会运行并关闭。我认为这没问题,直到我查看任务管理器并意识到这个小程序使用了15%-20%的CPU!有没有更好的方法?这里是代码的核心,得到一个想法:staticvoidMain(string[]args){iTunesApp=newiTunesAppClass();iTunesApp.OnPlay

c - Malloc 是否分配了比需要的更多的内存?

这是学校的C作业,但我遇到了一些奇怪的事情,我不知道它是否正常。我必须接受命令行参数,一个例子是-ia.b所以在我的程序中,我使用malloc动态分配内存char*fileName=NULL;fileName=malloc(strlen(argv[i])*sizeof(char));//errortestingetcstrcpy(fileName,argv[i]);工作正常,但我通过visualstudio调试器查看内存,这是在内存位置分配的内存位置,对我来说,它需要的空间更大:0x01608b98"ÍÍÍÍÍýýýýB`\x1˜?`\x1\xf1¼O{º"如果我像这样转换malloc

c++ - 如何判断虚拟内存页是否已被锁定?

比如说,如果在某个时候我的进程中的某个范围的虚拟内存被这样锁定://Memorywasreserved&committedassuchvoid*pMem=::VirtualAlloc(NULL,4096,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);//...//Andthen::VirtualLock(pMem,4096);所以在我的进程的虚拟内存中有一个页面的任意地址,我可以判断它是否是locked? 最佳答案 使用win32api这是不可能的。但如果使用ZwQueryVirtualMemory与

c++ - 使用winsock发送缓冲区后是否可以删除内存?

我有一个程序需要将缓冲区发送到套接字。我的问题是我可以在调用Winsock->send()方法后立即删除缓冲区吗?我提出这个问题的原因:我使用Windbg工具来识别内存泄漏,它在BuildPacket()中显示了这个地方,新内存没有正确释放。所以我想到发送到套接字后清除内存。当我的程序在多个循环中运行时,此方法将被调用大约4,00,000次,这会消耗大部分内存。请。假设m_ClientSocket是一个已经建立的套接字连接。boolTCPSendBuffer(char*pMessage,intiMessageSize){try{intiResult=0;iResult=send(m_C

C malloc + free 不断增加内存占用

我有一个处理大量数据(100+KB)的C应用程序。我正在使用malloc()来分配所需的内存。(char*)malloc(argLen+18+2)执行后,我使用free释放分配的内存。据我所知,由于某些原因,释放的内存没有返回给操作系统。我的问题是,当我再次运行该程序时,它并没有重新使用分配的内存,而是不断增加我的应用程序的内存使用量。编辑:对于造成的困惑,我深表歉意。该进程是一个WebSocket服务。除非有意停止,否则它不会终止。这是否意味着该进程将继续增加其内存使用量并且不会释放分配的内存,除非我手动重新启动它? 最佳答案 I

c++ - 无法追踪潜在的内存覆盖。 Windows 怪异

这让我抓狂。我在Windows.lib中使用了一些第3方代码,在Debug模式下,它导致了类似于以下内容的错误:Run-TimeCheckFailure#2-Stackaroundthevariable'foo'wascorrupted.当对象超出范围或被删除时抛出错误。简单地分配这些对象之一然后删除它会引发错误。因此,我认为问题出在许多构造函数/析构函数中的一个中,但尽管遍历了每一行代码,我还是找不到问题。但是,这只会在静态库中创建这些对象之一时发生。如果我在我的EXE应用程序中创建一个,则不会出现错误。第三方代码本身存在于静态库中。例如,这失败了:**3RDPARTY.LIB**c

windows - 将 hwnd GDI 调用重定向到系统内存位图?

我有一个第3方ActiveX控件,我想在其他表示技术(Direct3D和WPF)中呈现。为此,我需要ActiveX渲染到系统内存位图而不是屏幕。我知道有办法做到这一点,但不知道从哪里开始。我不害怕做任何native方法Hook,但我不确定从哪里开始。我在想BeginPaint(...)可能是热门票...有没有人这样做过或看到过周围的例子/sample?顺便说一句,我不想​​做WM_PRINT类型的解决方案。我宁愿此代码是被动的,而不是主动的并强制hwnd重新绘制。编辑:两个答案对我来说都是正确的,所以我给了每个答案+1。我希望有一个较低级别的解决方案来更加灵活,但目前这已经足够了。

windows - GetIpAddrTable() 泄漏内存。如何解决?

在我的Windows7机器上,这个简单的程序会导致应用程序的内存使用量不断上升,没有上限。我已经删除了所有非必要的内容,看起来罪魁祸首显然是MicrosoftIphlpapi函数“GetIpAddrTable()”。在每次调用时,它都会泄漏一些内存。在循环中(例如检查网络接口(interface)列表的更改),它是不可持续的。似乎没有异步通知API可以完成这项工作,所以现在我面临着可能必须将此逻辑隔离到一个单独的进程中并定期回收该进程——一个丑陋的解决方案。有什么想法吗?//IphlpLeak.cpp-demonstratesthatGetIpAddrTableleaksmemoryi

windows - 当一个进程与其他进程结合运行时,观察到句柄泄漏

我的一个可执行文件在单独运行时打开了大约330个句柄。当它与另一个特定进程结合运行时,它会泄漏许多句柄。我使用了sysinternals的“句柄”实用程序来检查在这两种情况下打开的所有句柄是什么。当此进程与其他特定进程结合运行时,它具有以下句柄条目的额外内容。578:Process57C:Thread580:Process584:Thread588:Process58C:Thread590:Event598:Process59C:Thread5A0:Process5A4:Thread5A8:Process5AC:Thread5B0:Process5B4:Thread5B8:Event这